﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Data_Access_Layer;
using System.IO;
using Business_Layer;
using log4net;
using log4net.Config;

namespace CaffeBillard
{
	public partial class FormLogin : DevComponents.DotNetBar.Office2007RibbonForm
	{
        protected static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
		public string usename, password;
	    private Utility _com= new Utility();

		AccountController accountController=new AccountController();
		public FormLogin()
		{
			InitializeComponent();
		}
		/// <summary>
		/// hàm kiểm tra đăng nhập của tài khoản
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnLogin_Click(object sender, EventArgs e)
		{

            if (txtName.Text == "" || txtPass.Text == "")
                lblTB.Text = "Bạn chưa nhập đủ thông tin";
            else
            {
                var account =
                    Account.Objects.FirstOrDefault(x => x.Username == txtName.Text && x.Password == txtPass.Text&x.Deleted==false);

                if (account != null)
                {
                    usename = txtName.Text;
                    password = txtPass.Text;
                    XmlConfigurator.Configure();
                    log.Info(usename + " Dang nhap vao he thong");
                    /// <summary>
                    /// dang nhap thanh cong luu lai tai khoan da dang nhap
                    /// </summary>

                    WorkSession.Current.CurrentAccount = account;
	                WorkSession.Current.CurrentAccount.LastLogin = DateTime.Now;
                    WorkSession.Current.LastRefresh = DateTime.Now;
	                accountController.Insert_Update(account);
                    //Nếu checkbox ghi nhớ được check thì lưu tài khoản và mật khẩu lại
                    if (ckbRemember.Checked)
                    {
                        string s =txtName.Text;
                        StreamWriter sw = new StreamWriter("tk.txt", false);
                            //Tạo đối tượng để ghi, thuộc tính false để xác định rằng, xóa hết dữ liệu trong đó rồi ghi mới vào
                        sw.Write(s);
                        sw.Close(); //Đóng
                    }
                    Hide();
                    FormMain main = new FormMain();
                    main.Show();
                }
                else
                    lblTB.Text = "Tài khoản hoặc mật khẩu không tồn tại";
            }


		}
		//load FormLogin
		private void FormLogin_Load(object sender, EventArgs e)
		{
            if (File.Exists("tk.txt"))
            {
                string s = File.ReadAllText("tk.txt");
                txtName.Text = s;
            }
		    txtName.Focus();
		}

		private void btnCancel_Click(object sender, EventArgs e)
		{
			Environment.Exit(0);
		}

        private void txtName_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode==Keys.Enter)
                btnLogin.PerformClick();
        }
	}
}
